package dao;

import model.Usuario;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import db.GerarTabelas;

public class UsuarioDao {

	public static void adicionarUsuario(Usuario usuario) {

		Session session = GerarTabelas.preparaSessao();
		session.save(usuario);
		session.beginTransaction().commit();
		session.close();
	}


	public static Usuario buscarUsuarioPorEmail(String emailUsuario) {
		Session session = GerarTabelas.preparaSessao();
		Transaction transaction = session.beginTransaction();
		Criteria criteria = session.createCriteria(Usuario.class);
		criteria.add(Restrictions.eq("email", emailUsuario));
		Usuario usuario = (Usuario) criteria.uniqueResult();

		return usuario;

	}
	
	public static Usuario buscarUsuarioPorId(long id) {
		Session session = GerarTabelas.preparaSessao();
		Transaction transaction = session.beginTransaction();
		Criteria criteria = session.createCriteria(Usuario.class);
		criteria.add(Restrictions.eq("id", id));
		Usuario usuario = (Usuario) criteria.uniqueResult();

		return usuario;

	}

	public static void modificarUsuario(Usuario usuario) {
		Session session = GerarTabelas.preparaSessao();
		Transaction transaction = session.beginTransaction();
		Usuario usuarioBd = (Usuario) session.load(Usuario.class, usuario.getId());
		usuarioBd = usuario;
		session.update(usuarioBd);
		transaction.commit();
		session.close();

	}
}
